import java.util.Deque;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;

public class Test {

    public static void main2(String[] args) {
        MyQueue queue = new MyQueue();
        queue.offer(12);
        queue.offer(23);
        queue.offer(34);

        System.out.println(queue.roll());
        System.out.println(queue.peek());
        System.out.println(queue.peek());
        System.out.println(queue.isEmpty());
    }

    public static void main(String[] args) {
        //栈的底层逻辑是数组
        //   实现栈的方式

        //1. 用数组实现栈
        Stack<Integer> stack = new Stack<>();
        stack.push(12);

        //2. 链表实现栈
        LinkedList<Integer> stack2 = new LinkedList<>();
        stack2.push(12); // 按ctrl键 + 鼠标点击 可以看到 LinkedList 下创建
        //  stack2 的 push 的底层实现是 头插法入栈
        stack2.push(23);
        stack2.push(34);

        stack2.pop();//


        //队列

        // 与   栈 先进后出 的方式不同
        //  队列是 先进先出

        Queue<Integer> queue = new LinkedList<>();
        queue.offer(12);// 尾插法
        queue.offer(23);
        queue.offer(34);

        System.out.println(queue.poll());
        System.out.println(queue.peek());
        System.out.println(queue.peek());
        System.out.println(queue.isEmpty());

        //双端队列
        Deque<Integer> stack3 = new LinkedList<>();



    }
}
